import java.util.*;
class Student implements Comparable { 
	int height=0;
	String name;
	Student(String n,int h) {
		name=n;
		height = h;
	}
	public int compareTo(Object b) { // 两个Student对象相等当且仅当二者的height值相等
		Student st=(Student)b;
		return (this.height-st.height);
	}
}
public class Example15_4 {
	public static void main(String args[ ]) { 		      
	   	List<Student> list = new LinkedList<Student>();
		list.add(new Student("20165313张晨晖",165)); 
		list.add(new Student("20165314陈由章",166)); 
		list.add(new Student("20165315阎含",167)); 
		Iterator<Student> iter=list.iterator();
		System.out.println("排序前,链表中的数据");
		while(iter.hasNext()){
			Student stu=iter.next();
			System.out.println(stu.name+ "身高:"+stu.height);
		}
		Collections.sort(list);
		System.out.println("排序后,链表中的数据");
		iter=list.iterator();
		while(iter.hasNext()){
			Student stu=iter.next();
			System.out.println(stu.name+ "身高:"+stu.height);
		}
		Student zhaoLin = new Student("zhao xiao lin",178);
		int index = Collections.binarySearch(list,zhaoLin,null);
		if(index>=0) {
			System.out.println(zhaoLin.name+"和链表中"+list.get(index).name+"身高相同");
		}
	}
}


